package org.corey.wyp.business;

import java.util.List;

import org.corey.wyp.vo.AccountItem;
import org.corey.wyp.vo.Calendar;
import org.corey.wyp.vo.DaySettingTemplate;
import org.corey.wyp.vo.MonthSetting;
import org.corey.wyp.vo.MonthSettingTemplate;
import org.hibernate.SessionFactory;

public interface IProperityManager {
	public void setSessionFactory(SessionFactory sf);

	public MonthSetting getMonthSetting(int year, int month);

	public List<Calendar> getCalendars();

	public boolean saveCalendar(Calendar calendar);

	public boolean removeCalendar(Integer id);

	public boolean saveAccountItem(AccountItem accountItem);
	
	public boolean removeAccountItem(Integer id);
	
	public boolean removeAccountItem(Integer[] ids);
	
	public boolean removeAccountItem(int year,int month,int date);

	public Calendar getCalendarAccount(final int year, final int month,
			final int date);

	public boolean saveMonthSetting(MonthSetting monthSetting);

	/******************************** SettingTemplate operation *********************/
	public boolean saveMonthSettingTemplate(
			MonthSettingTemplate monthSettingTemplate);

	public boolean removeMonthSettingTemplate(Integer settingId);

	public boolean updateMonthSettingTemplate(
			MonthSettingTemplate monthSettingTemplate);

	public boolean saveDaySettingTemplate(DaySettingTemplate daySettingTemplate);

	public boolean removeDaySettingTemplate(Integer settingId);

	public boolean updateDaySettingTemplate(
			DaySettingTemplate daySettingTemplate);

	/******************************** SettingTemplate operation *********************/

	public String testConnection(String seedString);
	
	public Calendar getServerTime();
}
